/** Type macro defination.
 *
 *  This file define some useful type macro. The behavior macro will be defined by another file.
 *  Basic type will redefine some useful C++ type to avoid weak portability.
 *
 *  @author : huicong
 *  @date : 2008-10-26
 *
 */

#ifndef _BASIC_TYPE_H
#define _BASIC_TYPE_H

/** Boolean */
typedef bool BOOL;
#define TRUE true
#define FALSE false

/** Integer */
typedef int INT;
typedef int INT32;
//typedef long INT32
typedef long long INT64;
//typedef __int64 INT64;
typedef unsigned int UINT;
typedef unsigned int UINT32;
typedef unsigned long long UINT64;
//typedef unsigned __int64 INT64;

/** Char */
typedef char CHAR;
typedef wchar_t WCHAR;
typedef unsigned char UCHAR;
#define STRING std::string
typedef char* PCHAR;
typedef char* CSTRING;

/** Byte */
typedef unsigned char BYTE;

/** Float */
typedef float FLOAT;
typedef double DOUBLE;

/** Void */
typedef void VOID;
#define NULL 0

#endif //#ifndef _BASIC_TYPE_H